1. Field of the Invention
The present invention illustrates a reading method of solid state disk, and more particularly, a reading method for mitigating reading congestion.
2. Description of the Prior Art
A solid state disk (SSD) is generally several integrated non-volatile memories (NVM) and thus regarded as a single memory device. Since a solid state disk provides very rapid data transmission speed, a solid state disk becomes the major data storage device in a computer system.
Generally, the computer system sends a reading request by using a processor. The memory controller in the solid state disk receives the reading request, and then sends the reading request to each non-volatile memory unit. Each non-volatile memory unit registers the reading request in a reading request queue according to the order of sending the reading request to each non-volatile memory unit. Further, according to the reading request queue in each non-volatile memory unit and following the first-in-first-out (FIFO) rule, data in the non-volatile memory units can be read sequentially. The data in the non-volatile memory units are integrated by the memory controller and then sent to the computer system. In the following, the processor saves the reading data to a dynamic random access memory (DRAM) for backup. Thus, a solid state disk uses many first-in-first-out channels with respect to many non-volatile memory units for data transmission. By using multi-channel structure, the speed of data transmission can be improved.
However, since the size of reading request queue is limited in each non-volatile memory unit, when the reading request queue is full-loaded, the non-volatile memory unit is stopped from receiving reading request, leading to failure for receiving the reading request by a non-volatile memory unit. FIG. 1 is the conventional method of reading a solid state disk in prior art. When the memory controller in the non-volatile memory receives the reading requests, the memory controller sends the reading request to each non-volatile memory unit (step P1), and checks if the reading request is registered to each non-volatile memory unit (step P2). If the reading request is sent to a non-volatile memory unit with a full-loaded reading request queue, the non-volatile memory unit is stopped from receiving the reading request, leading to failure for receiving the reading request. In this case, the memory controller repeatedly tries to send the reading request to the non-volatile memory unit (step P3) until the reading request queue of the non-volatile memory unit is not full-loaded (i.e., the reading request queue has a space for receiving and registering the reading request) (step P4). Then, the memory controller sends the next reading request to another non-volatile memory unit (step P5), or waits for the next reading request received by the computer system (step P6).
Since the memory controller repeatedly tries to send the reading request to the non-volatile memory unit until the reading request queue of the non-volatile memory unit is not full-loaded, the reading requests corresponding to the subsequent non-volatile memory units of the solid state disk suffer from reading congestion. Thus, the reading speed of solid state disk is decreased, leading the performance degradation. Thus, it is important to develop an efficient reading method in solid state disk.